package com.yoda.mall.model.vo;

import com.yoda.mall.model.entity.sms.Coupon;
import com.yoda.mall.model.entity.sms.CouponProductCategoryRelation;
import com.yoda.mall.model.entity.sms.CouponProductRelation;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.beans.BeanUtils;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 优惠券获取时返回参数
 */
@Data
public class CouponVo implements Serializable {
    private Long id;//主键id
    private Integer type;//优惠券类型；0->全场赠券；1->会员赠券；2->购物赠券；3->注册赠券
    private String name;//券名
    private Integer platform;//使用平台：0->全部；1->移动；2->PC
    private Integer count;//数量
    private Double amount;//金额
    private Integer perLimit;//每人限领张数
    private Double minPoint;//使用门槛金额；0表示无门槛
    private LocalDateTime startTime;//有效期起始时间
    private LocalDateTime endTime;//有效期截止时间
    private Integer useType;//使用类型：0->全场通用；1->指定分类；2->指定商品
    private String note;//备注
    private Integer publishCount;//发行数量
    private Integer useCount;//已使用数量
    private Integer receiveCount;//领取数量
    private LocalDateTime enableTime;//可以领取的日期
    private String code;//优惠码
    private Integer memberLevel;//可领取的会员类型：0->无限时
    private List<CouponProductCategoryRelation> productCategoryRelationList;//优惠券绑定的商品分类
    private List<CouponProductRelation>  productRelationList;//优惠券绑定的商品
    public static CouponVo init(Coupon coupon,List<CouponProductCategoryRelation> couponProductCategoryRelations,List<CouponProductRelation> couponProductRelations){
        CouponVo couponVo = new CouponVo();
        BeanUtils.copyProperties(coupon,couponVo);
        couponVo.setProductCategoryRelationList(couponProductCategoryRelations);
        couponVo.setProductRelationList(couponProductRelations);
        return couponVo;
    }
}
